from django.db import models

# Create your models here.
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer , BadData

from mall import settings
from utils.models import BaseModel


class OAuthQQUser(BaseModel):
    #qq登录用户数据
    user=models.ForeignKey('users.User',on_delete=models.CASCADE,verbose_name='用户')
    openid=models.CharField(max_length=64,verbose_name='openid',db_index=True)


    class Meta:
        db_table='tb_oauth_qq'
        verbose_name='QQ登录用户数据'
        verbose_name_plural=verbose_name


    @staticmethod
    def generate_save_user_token(openid):
        serializer=Serializer(settings.SECRET_KEY,expires_in=3600)

        token=serializer.dumps({'openid':openid})

        return token.decode()
    @staticmethod
    def check_save_user_token(token):
        serializer=Serializer(settings.SECRET_KEY,expires_in=3600)
        try:
            #转换为字典 解码
            result=serializer.loads(token)
        except BadData:
            return None
        else:
            return result.get('openid')



